using Lzfy_Refund_Service.Models;

namespace Lzfy_Refund_Service.Services
{
    /// <summary>
    /// 门诊患者就诊信息服务接口
    /// </summary>
    public interface IOutpPatientVisitService
    {
        /// <summary>
        /// 同步最近10分钟内的门诊患者就诊信息到Redis
        /// </summary>
        /// <returns>同步的数据条数</returns>
        Task<int> SyncRecentOutpPatientVisitsToRedisAsync();

        /// <summary>
        /// 从Redis获取门诊患者就诊信息
        /// </summary>
        /// <param name="doctorVsOutpVisitId">医生与门诊就诊ID组合键</param>
        /// <returns>门诊患者就诊信息</returns>
        Task<OutpPatientVisit?> GetFromRedisAsync(string doctorVsOutpVisitId);

        /// <summary>
        /// 获取最近10分钟内的门诊患者就诊信息（直接从数据库查询）
        /// </summary>
        /// <returns>门诊患者就诊信息列表</returns>
        Task<IEnumerable<OutpPatientVisit>> GetRecentOutpPatientVisitsAsync();
    }
}